//在非常规的vue项目中，package.json无法使用  import 引入语法  可将type 设置为 module即可子常规的html文键项目中引入了
//服务端
const express = require("express"); //提供后端服务

const cors = require("cors"); //解决跨域
const mysql = require("mysql");
//创建数据库服务
const db = mysql.createConnection({
  host: "127.0.0.1",
  user: "root",
  password: "zjq,1457521",
  database: "my_loacal_test",
});
// 连接到数据库
db.connect((err) => {
  if (err) {
    console.error("数据库连接失败:", err.stack);
    return;
  }
  console.log("已连接到数据库");
});
// 2.创建服务
const app = express();
app.use(cors()); //允许跨域
app.use(express.json());
app.use(express.urlencoded());
// 定义一个获取数据的接口
app.post("/dbData", (req, res) => {
  const sql = "SELECT * FROM local_create_db"; // 替换为你的表名
  db.query(sql, (err, results) => {
    if (err) {
      console.error("查询失败:", err.stack);
      res.status(500).json({ code: 500, message: "查询失败", data: [] });
      return;
    }
    // console.log(results, "查询结果");
    // 将结果转换为数组并返回
    const dataArray = results.map((row) => ({ ...row })); // 复制每一行数据
    res.json({
      code: 200,
      message: "成功",
      data: dataArray,
    });
  });
});
//增加一行数据
app.post("/addDbData", (req, res) => {
  const id = req.body.id;
  const sql =
    "INSERT INTO local_create_db (id, name, age, class) VALUES (?, '新增', 15, '初中')";
  db.query(sql, [id], (err, results) => {
    if (err) {
      console.error("新增失败:", err.stack);
      res
        .status(500)
        .json({ code: 500, message: "新增失败", data: "新增数据失败" });
      return;
    }
    // console.log(results, "新增结果");
    res.json({
      code: 200,
      message: "成功",
      data: "新增成功",
    });
  });
});
//删除
app.post("/suDbData", (req, res) => {
  const id = req.body.id;
  const sql = "DELETE FROM local_create_db WHERE id = ?";
  db.query(sql, [id], (err, results) => {
    if (err) {
      console.error("删除失败:", err.stack);
      res
        .status(500)
        .json({ code: 500, message: "删除失败", data: "删除数据失败" });
      return;
    }
    // console.log(results, "删除结果");
    res.json({
      code: 200,
      message: "成功",
      data: "删除成功",
    });
  });
});
// 4.监听服务
app.listen(4000, () => {
  console.log("服务:4000");
});

// 部署到宝塔后的ip就是自己阿里云服务器的公网ip
